from1(X) -> cons2(X, n__from1(s1(X)))
after2(0, XS) -> XS
after2(s1(N), cons2(X, XS)) -> after2(N, activate1(XS))
from1(X) -> n__from1(X)
activate1(n__from1(X)) -> from1(X)
activate1(X) -> X
↳ QTRS
↳ DependencyPairsProof
from1(X) -> cons2(X, n__from1(s1(X)))
after2(0, XS) -> XS
after2(s1(N), cons2(X, XS)) -> after2(N, activate1(XS))
from1(X) -> n__from1(X)
activate1(n__from1(X)) -> from1(X)
activate1(X) -> X
AFTER2(s1(N), cons2(X, XS)) -> AFTER2(N, activate1(XS))
AFTER2(s1(N), cons2(X, XS)) -> ACTIVATE1(XS)
ACTIVATE1(n__from1(X)) -> FROM1(X)
from1(X) -> cons2(X, n__from1(s1(X)))
after2(0, XS) -> XS
after2(s1(N), cons2(X, XS)) -> after2(N, activate1(XS))
from1(X) -> n__from1(X)
activate1(n__from1(X)) -> from1(X)
activate1(X) -> X
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
AFTER2(s1(N), cons2(X, XS)) -> AFTER2(N, activate1(XS))
AFTER2(s1(N), cons2(X, XS)) -> ACTIVATE1(XS)
ACTIVATE1(n__from1(X)) -> FROM1(X)
from1(X) -> cons2(X, n__from1(s1(X)))
after2(0, XS) -> XS
after2(s1(N), cons2(X, XS)) -> after2(N, activate1(XS))
from1(X) -> n__from1(X)
activate1(n__from1(X)) -> from1(X)
activate1(X) -> X
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
AFTER2(s1(N), cons2(X, XS)) -> AFTER2(N, activate1(XS))
from1(X) -> cons2(X, n__from1(s1(X)))
after2(0, XS) -> XS
after2(s1(N), cons2(X, XS)) -> after2(N, activate1(XS))
from1(X) -> n__from1(X)
activate1(n__from1(X)) -> from1(X)
activate1(X) -> X
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
AFTER2(s1(N), cons2(X, XS)) -> AFTER2(N, activate1(XS))
POL( AFTER2(x1, x2) ) = max{0, x1 - 2}
POL( s1(x1) ) = x1 + 3
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
from1(X) -> cons2(X, n__from1(s1(X)))
after2(0, XS) -> XS
after2(s1(N), cons2(X, XS)) -> after2(N, activate1(XS))
from1(X) -> n__from1(X)
activate1(n__from1(X)) -> from1(X)
activate1(X) -> X